Information Disclosure
Information Disclosure Nedir Nasıl Test Edilir?
Bilginin açığa çıkması anlamına gelen bu zafiyet bir web sitesinde herhangi bir yapı bozukluğu ya da eksikliği yüzünden saldırgana kullanıcı bilgileri, şirkete ait veriler veya web sitesinin kullandığı uygulamalar ve bu uygulamaların mevcut sürümleri gibi bilgilerin açığa çıkması bu zafiyetin olduğu anlamına gelir. Bu zafiyeti web sitesinin hatalarında veya bulunan dosyalarda da görmek mümkündür. Örnek verelim web sitesinde farklı girdiler girerek denemeler yaptığımızı düşünün bazı sitelerde 404 not found hatasının altında Apache versiyon bilgisinin de çıktığını görmek mümkün. Bu versiyon bilgisi 2.4.50 olduğunu varsayalım işte bu kısımda bir zafiyet açıkça söz konusu bu versiyon bilgisinden bir zafiyet araştırması yapabiliriz.
https://www.exploit-db.com/exploits/50512 bu adreste 2.4.50 versiyonuna yönelik bir exploit bulunmakta. Yani information disclosure zafiyetinden edindiğimiz bir bilgi bizie uzaktan kod yürütmeyi sağlayabilmekte.
Test edilme aşaması direkt olarak ortaya çıkmayabilir. Yani bir sitede belli dizinlerinde Directory Traversal açığı olabilir bu açık sayesinde dizinlerdeki dosyaları inceleyebiliriz bu dosyaların içinde kullanılan uygulamalar ve sürümleri hakkında bilgi elde etmek mümkün. Test sırasında karşımıza çıkan hata sayfalarında çıkma ihtimali olabilir. Veya BurpSuite üzerinde paketleri manipüle ederek karşımıza çıkması mümkün olabilir.
Şimdi PortSwigger üzerinden birkaç labaratuvar çözerek daha anlaşılır hale getirelim.
Burada kullanılan framework versiyonunun geçmiş versiyon olduğunu bulmamızı istemiş.
Url kısmında bir productId parametresini görüyoruz. Bu parametreye muhtemelen olmayacak bir değer girdiğimizde muhtemelen bir hata alacağız ve random bir değer giriyoruz.
Ve karşımıza aşağıdaki gibi bir sürüm bilgisi içeren bir hata sayfası çıkıyor.
Bu bilgiyi labaratuvara submit ediyoruz.
Bu şekilde çözmüş ve sürüm bilgisi elde etmiş olduk bu sürümle ilgili bir zafiyet taraması yapılabilir çeşitli saldırılar denenilebilir.
Bir diğer labaratuvarına geçelim:
Burada hassas bilgiler içeren uygulama mevcut diyor ve SECRET_KEY değerini submit etmemizi istiyor.
Yukarıdaki response kodlarında yorum satırı haline getirilmiş bir sayfa görüyoruz. Normalde kullanılmayan sayfaların ileride zarar verme ihtimaline karşılık kapatılmış olması yani saldırganın haberdar olmaması ulaşamaması gerekir. Biz bu sayfaya gitmek istiyoruz.
Ve yukarıdaki sayfa ile karşılaştık. Aslında bu sayfa bile direkt olarak zafiyeti tehlikeli hale getirebilmekte. Biz SECRET_KEY anahtarını bulmak için geçerli paketi inceliyoruz.
Ve SECRET_KEY e ulaşmayı başardık. Submit ediyoruz.
Peki Gerçek Web Sitelerinde Laboratuvarlardaki Gibi Çıkar Mı?
Evet mümkün. Bu zafiyetler ile herhangi bir güvenlik açığı testini yaparken de karşılaşabiliriz. Etkisi bazen büyük ölçüde olabilir. Uzaktan kod yürütme zafiyetine neden olabilir.
Birkaç Örnek Information Disclosure Raporları
https://hackerone.com/reports/990048
https://hackerone.com/reports/1423704
https://hackerone.com/reports/864712